
#include <ddk.h>

class CVinciLock {
public:
    inline CVinciLock() {
        AuraMutex_Create(&m_lock);
    }

    inline ~CVinciLock() {
        AuraMutex_Destroy(m_lock);
    }

    inline ECode Lock(
                /*[out]*/WaitResult * pResult) {
        return AuraMutex_Lock(m_lock, INFINITE, (Aura_WaitResult*)pResult);
    }

    inline ECode UnLock() {
        return AuraMutex_Unlock(m_lock);
    }


public:
    Aura_Handle m_lock;
};
